Page({
  data: {
    agreementChecked: false, // 协议是否已勾选
    noticeChecked: false, // 报名须知是否已勾选
    canCheckNotice: false, // 是否可以勾选报名须知（需先滚动到底部）
    hasScrolledToBottom: false, // 是否已滚动到底部
    canSubmit: false, // 是否可以提交（需两个都勾选）
  },

  onLoad(options) {
    this.courseId = options?.courseId || ''
    this.positionCode = options?.positionCode || ''
  },

  // 滚动事件
  onScroll(e) {
    const scrollTop = e.detail.scrollTop
    const scrollHeight = e.detail.scrollHeight
    const clientHeight = e.detail.scrollHeight // 这里需要获取实际的可视高度
    
    // 通过scroll-view的scroll事件判断是否滚动到底部
    // 由于微信小程序的scroll-view限制，我们通过scrolltolower事件来判断
  },

  // 滚动到底部
  onScrollToBottom() {
    if (!this.data.hasScrolledToBottom) {
      this.setData({
        hasScrolledToBottom: true,
        canCheckNotice: this.data.agreementChecked // 只有协议已勾选才能勾选报名须知
      })
      
      if (!this.data.agreementChecked) {
        wx.showToast({
          title: '请先勾选协议阅读',
          icon: 'none'
        })
      }
    }
  },

  // 协议复选框点击
  onAgreementCheck() {
    const checked = !this.data.agreementChecked
    this.setData({
      agreementChecked: checked,
      // 如果协议取消勾选，且已滚动到底部，则允许勾选报名须知
      // 但需要协议先勾选才能勾选报名须知
      canCheckNotice: this.data.hasScrolledToBottom && checked
    })
    
    // 如果取消协议勾选，同时取消报名须知勾选
    if (!checked && this.data.noticeChecked) {
      this.setData({
        noticeChecked: false
      })
    }
    
    this.checkCanSubmit()
  },

  // 报名须知复选框点击
  onNoticeCheck() {
    if (!this.data.canCheckNotice) {
      wx.showToast({
        title: '请先滚动到底部',
        icon: 'none'
      })
      return
    }

    if (!this.data.agreementChecked) {
      wx.showToast({
        title: '请先勾选协议阅读',
        icon: 'none'
      })
      return
    }

    const checked = !this.data.noticeChecked
    this.setData({
      noticeChecked: checked
    })
    this.checkCanSubmit()
  },

  // 检查是否可以提交
  checkCanSubmit() {
    const canSubmit = this.data.agreementChecked && this.data.noticeChecked
    this.setData({
      canSubmit: canSubmit
    })
  },

  // 查看协议
  viewAgreement() {
    wx.navigateTo({
      url: '/pages/agreement/index'
    })
  },

  // 继续填写报名信息
  goNext() {
    if (!this.data.canSubmit) {
      wx.showToast({
        title: '请先完成所有勾选',
        icon: 'none'
      })
      return
    }

    // 跳转到报名信息填写页
    const courseId = this.courseId || ''
    const positionCode = this.positionCode || ''
    wx.navigateTo({
      url: `/pages/register/index?courseId=${courseId}&positionCode=${positionCode}`
    })
  }
})